package org.dtrevien.metamodel.graphviz.stmt.impl;

import java.util.List;

import org.dtrevien.metamodel.graphviz.AttrList;
import org.dtrevien.metamodel.graphviz.edgerhs.EdgeRHS;
import org.dtrevien.metamodel.graphviz.stmt.Stmt;
import org.dtrevien.metamodel.graphviz.visitor.Visitor;

public class EdgeStmtSubgraph extends Stmt {

	protected List<AttrList> attrLists;
	protected EdgeRHS edgeRHS; //Can be null
	protected Subgraph subgraph;//Can be null
	
	public EdgeStmtSubgraph() {
	}

	public EdgeStmtSubgraph(List<AttrList> attrLists) {
		super();
		this.attrLists = attrLists;
	}

	public EdgeStmtSubgraph(List<AttrList> attrLists, EdgeRHS edgeRHS, Subgraph subgraph) {
		super();
		this.attrLists = attrLists;
		this.edgeRHS = edgeRHS;
		this.subgraph = subgraph;
	}

	public List<AttrList> getAttrLists() {
		return this.attrLists;
	}

	public void setAttrLists(List<AttrList> attrLists) {
		this.attrLists = attrLists;
	}

	public EdgeRHS getEdgeRHS() {
		return this.edgeRHS;
	}

	public void setEdgeRHS(EdgeRHS edgeRHS) {
		this.edgeRHS = edgeRHS;
	}

	public Subgraph getSubgraph() {
		return this.subgraph;
	}

	public void setSubgraph(Subgraph subgraph) {
		this.subgraph = subgraph;
	}

	public void accept(Visitor v) {
		v.visitEdgeStmtSubgraph(this);
	}
	
}
